﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HeadCounter.Armourer.Base;
using MathematicallySafe.HeadCounter.Data.Models;

namespace MathematicallySafe.HeadCounter.Data.Domain
{
    [Serializable]
    public class Options
    {
        public Options() {}
        public string GuildName { get; set; }
        public WowRegion Region { get; set; }
        public string Realm { get; set; }
        public int ShortPeriodLength { get; set; }
        public int LongPeriodLength { get; set; }
        public Period DefaultPeriod { get; set; }
        public int iLevelBase { get; set; }
        public int iLevelProgression { get; set; }
        public int iLevelTierDifference { get; set; }
        public int MaxEffectiveAttendancePercent { get; set; }
        public int MinAttendancePercent { get; set; }
        public int MinAttendanceCount { get; set; }
        public bool ReportOptionalRaids { get; set; }
        public double HighAttendancePercentage { get; set; }
        public double GoodAttendancePercentage { get; set; }
        public double FairAttendancePercentage { get; set; }
        public List<LootOverride> Overrides { get; set; }
        public bool AutoApplyAttendanceCreditToDeletedRaiders { get; set; }
        public bool ShowShortPeriodAllAttendance { get; set; }
        public bool ShowShortPeriodAttendance { get; set; }
        public bool ShowLongPeriodAttendance { get; set; }
        public bool ShowLongPeriodAllAttendance { get; set; }
        public bool ShowLifetimeAttendance { get; set; }
        public bool ShowLifetimeAllAttendance { get; set; }
        public bool ShowShortPeriodEffectiveAttendance { get; set; }
        public bool ShowLongPeriodEffectiveAttendance { get; set; }
        public bool ShowLifetimeEffectiveAttendance { get; set; }
        public bool ShowShortPeriodLootCount { get; set; }
        public bool ShowLongPeriodLootCount { get; set; }
        public bool ShowLifetimeLootCount { get; set; }
        public bool ShowShortPeriodLootValue { get; set; }
        public bool ShowLongPeriodLootValue { get; set; }
        public bool ShowLifetimeLootValue { get; set; }
        public bool ShowShortPeriodLootRate { get; set; }
        public bool ShowLongPeriodLootRate { get; set; }
        public bool ShowLifetimeLootRate { get; set; }
        public bool ShowShortPeriodLootWeightedValue { get; set; }
        public bool ShowLongPeriodLootWeightedValue { get; set; }
        public bool ShowLifetimeLootWeightedValue { get; set; }
        public bool ShowShortPeriodWeightedLootRate { get; set; }
        public bool ShowLongPeriodWeightedLootRate { get; set; }
        public bool ShowLifetimeWeightedLootRate { get; set; }
        public bool ShowShortPeriodLootPriority { get; set; }
        public bool ShowLongPeriodLootPriority { get; set; }
        public bool ShowLifetimeLootPriority { get; set; }
    }
}
